package com.broada.apm.indicator.api;

import java.util.List;

import com.broada.apm.model.Analyzer;
import com.broada.apm.model.PagingList;
import com.broada.apm.model.RemoteProtocolInfo;

public interface AnalyzerService {
	/**
	 * 查询所有协议分析器
	 * @return
	 */
	public PagingList<Analyzer> getAllAnalyzer(int pageIndex, int pageSize) throws Exception;
	
	/**
	 * 查询所有协议分析器(不分页)
	 * @return
	 */
	public List<Analyzer> getAllAnalyzerNoPage() throws Exception;
	
	/**
	 * 增加协议分析器信息 
	 * @param name
	 * @param ip
	 * @param port
	 * @return
	 */
	public void addAnalyzer(Analyzer analyzer) throws Exception;
	
	/**
	 * 查询协议分析器信息 
	 * @param name
	 * @param ip
	 * @param port
	 * @return
	 */
	public List<RemoteProtocolInfo> getAnalyzerLog(String analyzerId) throws Exception;
	
	/**
	 * 查询协议分析器信息 
	 * @param name
	 * @param ip
	 * @param port
	 * @return
	 */
	public Analyzer getAnalyzerById(String analyzerId);
	
	/**
	 * 查询协议分析器信息 
	 * @param name
	 * @param ip
	 * @param port
	 * @return
	 */
	public Analyzer queryAnalyzerByIpAndPort(Analyzer analyzer) throws Exception;
	
	/**
	 * 删除协议分析器信息
	 * @param id
	 * @return
	 */
	public void deleteAnalyzer(String id) throws Exception;
}
